package cn.dwy2002.binaryhandwritingserver.common.utils;

import java.util.Random;

/**
 * 生成随机数字ID
 *
 * @author 杜伟毅
 * @version 1.0
 * @since 2025/05/31
 */
public class RandomIdGenerator {
    /**
     * 生成默认长度(6位)的数字ID
     *
     * @author 杜伟毅
     * @since 2025/5/31 0031 13:43
     */
    public static Long generateId() {
        return generateId(6);
    }

    /**
     * 生成指定长度的数字ID
     *
     * @param length 生成长度
     * @author 杜伟毅
     * @since 2025/5/31 0031 13:44
     */
    public static Long generateId(int length) {
        if (length <= 0) throw new IllegalArgumentException("ID长度必须大于0");

        Random random = new Random();
        StringBuilder sb = new StringBuilder(length);

        // 第一位：1-9（避免前导0）
        sb.append(random.nextInt(9) + 1);

        // 后续位：0-9
        for (int i = 1; i < length; i++) {
            sb.append(random.nextInt(10));
        }

        return Long.parseLong(sb.toString());
    }
}
